<?php
class GruposController extends AppController {

	var $name = 'Grupos';
	var $helpers = array('Access');
	var $uses = array('Grupo','Sedesiem', 'Iem');
	
	function sesion_activa(){
		$usuario_activo=$this->Access->getMy('username');
		//Verificacion de sesion del sistema
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
	}
	
	function index() {
	    $this->sesion_activa();
		$this->Grupo->recursive = 0;
		
		$grupos = $this->paginate('Grupo');		
		
		foreach( $grupos as &$grupo ){
			
			$equipo =  $grupo["EquiposOperativo"];
			$municipo_zona = $this->Grupo->EquiposOperativo->Zona->read('municipio_id', $equipo['zona_id']);
			$nombreMunicipio = $this->Grupo->EquiposOperativo->Zona->Municipio->read('nombre', $municipo_zona['Zona']['municipio_id']);
			$grupo['Grupo']['nombre_municipio'] = $nombreMunicipio['Municipio']['nombre'];
			$sede = $this->Sedesiem->read('nombre',$grupo['Grupo']['sedesiem_id']);
			$grupo['nombre_sede']=$sede['Sedesiem']['nombre'];
			unset($grupo);
		}		
		$this->set('grupos', $grupos);
	}

	function view($id = null) {
	    $this->sesion_activa();
		if (!$id) {
			$this->Session->setFlash(__('Invalid grupo', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('grupo', $this->Grupo->read(null, $id));
	}

	function add() {
	   $this->sesion_activa();
		if (!empty($this->data)) {
			//die(var_dump($this->data));
			$this->Grupo->create();
			if ($this->Grupo->save($this->data)) {
				$this->Session->setFlash(__('El Grupo Modelo A Crecer ha sido guardado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El Grupo Modelo A Crecer no ha sido guardado. Intente de Nuevo.', true));
			}
		}
		//Contratos
		$contratos = $this->Grupo->Contrato->find('list',array('fields' => array('Contrato.id', 'Contrato.nombre')));
		
		//EO's
		$eOs = $this->Grupo->EquiposOperativo->find('list', array('fields' => array('EquiposOperativo.id', 'EquiposOperativo.zona_id')));
		$equiposOperativos = array();
		$equiposOperativos[0] = "Seleccione una Entidad Territorial";
		foreach( $eOs as $key => $eo ){
				$municipio_zona = $this->Grupo->EquiposOperativo->Zona->read('municipio_id', $eo);							
				$nombreMunicipio = $this->Grupo->EquiposOperativo->Zona->Municipio->read('nombre', $municipio_zona['Zona']['municipio_id']);
				$equiposOperativos[$key] = $nombreMunicipio['Municipio']['nombre'];
				unset($eo);							
		}
				
		$users = $this->Grupo->User->find('list', array('fields'=>array('User.id','User.nombre_completo'),
																	  'conditions'=>array('User.group_id'=>'4'),
																	  'order' => array('User.nombre_completo ASC')));	
		
		$iems = $this->Iem->find('list', array('fields'=>array('Iem.id','Iem.nombre'), 'order' => array('Iem.nombre ASC')));
		
		$this->set(compact('contratos', 'equiposOperativos', 'users', 'iems'));
	}

	function edit($id = null) {
	    $this->sesion_activa();
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Grupo Modelo A Crecer invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Grupo->save($this->data)) {
				$this->Session->setFlash(__('El Grupo Modelo A Crecer ha sido guardado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El Grupo Modelo A Crecer no ha sido guardado. Intente de Nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Grupo->read(null, $id);
		}
		
		//Contratos
		$contratos = $this->Grupo->Contrato->find('list', array("fields"=>array('Contrato.id', 'Contrato.nombre')));
		//Contrato Seleccionado
		$contrato_id = $this->Grupo->read('contrato_id',$id);
		$contrato_id = $contrato_id['Grupo']['contrato_id'];		
		
		//EO's
		$eOs = $this->Grupo->EquiposOperativo->find('list', array('fields' => array('EquiposOperativo.id', 'EquiposOperativo.zona_id')));
		$equiposOperativos = array();
		foreach( $eOs as $key => $eo ){			
				$municipio_zona = $this->Grupo->EquiposOperativo->Zona->read('municipio_id', $eo);							
				$nombreMunicipio = $this->Grupo->EquiposOperativo->Zona->Municipio->read('nombre', $municipio_zona['Zona']['municipio_id']);
				$equiposOperativos[$key] = $nombreMunicipio['Municipio']['nombre'];
				unset($eo);							
		}		
		//Tutores
		$users = $this->Grupo->User->find('list', array("fields"=>array('User.id', 'User.nombre_completo'), "conditions"=>array('User.group_id'=>'4')));

		$sedes_iem = $this->Sedesiem->find('list', array('fields'=>array('Sedesiem.id','Sedesiem.nombre'),																	  
														 'order' => array('Sedesiem.nombre ASC'), 
														 'conditions'=>array('Sedesiem.iem_id'=>$this->data['Grupo']['iem_id'])));
		
		$equipo = $this->Grupo->EquiposOperativo->read(null,$this->data['Grupo']['equipos_operativo_id']);
		
		$iems = $this->Iem->find('list', array('fields'=>array('Iem.id','Iem.nombre'),
											   'order' => array('Iem.nombre ASC'),
											   'conditions'=>array('Iem.zona_id'=>$equipo['Zona']['id'])));
		
		$this->set(compact('contratos', 'contrato_id', 'equiposOperativos', 'users', 'sedes_iem', 'iems'));
	}

	function delete($id = null) {
	   $this->sesion_activa();
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for grupo', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Grupo->delete($id)) {
			$this->Session->setFlash(__('Grupo deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Grupo was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
}
